import CryptoJS from 'crypto-js'

class UseCrypto {
  /**
   * 加密
   * @param data 加密源数据
   * @param key 加密标识
   * @return 返回 加密后的值
   */
  encrypt (data: any, key = 'DefChigga') {
    return CryptoJS.AES.encrypt(JSON.stringify(data), key).toString()
  }

  /**
   * 解密
   * @param cryptData 加密过需要解密的数据
   * @param key 加密标识
   * @return 返回 解密后的值 相当于 加密传入的data
   */
  decrypt (cryptData: any, key = 'DefChigga') {
    const bytes = CryptoJS.AES.decrypt(cryptData, key)
    return JSON.parse(bytes.toString(CryptoJS.enc.Utf8))
  }
}

export const useCrypto = new UseCrypto()

/*
使用：
import { useCrypto } from '@/utils'

// 加密
let data1 = useCrypto.encrypt(loginForm.value.password, 'user') // data1为加密后的值
// 解密
let data2 = useCrypto.decrypt(newData, 'user') // data2为解密后的值（相当于loginForm.value.password原始值）
*/
